#include "process.h"
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#define NUM 101
#define STYLE '='
#define POINT '.'
const int pnum=6;
const char *lable="...";
//真实的进度条应该根据具体的下载量来控制进度
void Process(double total,double current)
{
  //更新当前进度的百分比
  double rate=(current/total)*100;
  //printf("test:%.2lf%%\r",rate);
  //fflush(stdout);

  //2.进度条：计算出进度条有多长
  //更新进度条主体
  char bar[NUM];//101个字符
  //我们认为：1%更新一个等号-------
  memset(bar,'\0',sizeof(bar));
  int i=0;
  for(i=0;i<(int)rate;i++)
  {
    //如果是0%，循环不走，如果是10，循环十次更新10个==
    bar[i]=STYLE;
  }
  static int num=0;
  num++;
  num%=pnum;
  char points[pnum+1];
  memset(points,'\0',sizeof(points));
  for(i=0;i<num;i++)
  {
    points[i]=POINT;
  }
  //更新旋转光标：
  printf("[%-100s][%.1lf%%]%s\r",bar,rate,points);
  fflush(stdout);
  sleep(1);
}


//
//void Process()
//{
//  const char *lable="|/-\\";
//  //现在有101个位置
//  char bar[NUM];
//  memset(bar,'\0',sizeof(bar));
//  int len=strlen(lable);
//  int cut = 0;
//  while(cut<=100)
//  {
//    //先打印
//    printf("\033[36m[%-100s][%%%d][%c]\r",bar,cut,lable[cut%len]);
//    fflush(stdout);
//    bar[cut]= STYLE;
//    cut++;
//    if(cut!=101)bar[cut]='>';
//    if(cut==100)bar[cut]='=';
//    usleep(20000);
//  }
//  printf("\r\n");
//}
